AQL এ Joins ব্যবহার করা

Database Tutorials - আরাঙ্গো (ArangoDB) Joins এবং Relational Queries |
238
238

AQL (ArangoDB Query Language)-এ Joins ব্যবহার করা হয় ডকুমেন্ট বা কালেকশন থেকে সম্পর্কিত ডেটা একত্রে আনার জন্য। এটি ডাটাবেসের বিভিন্ন কালেকশনের মধ্যে সম্পর্ক তৈরি এবং ডেটা বিশ্লেষণ করার জন্য খুবই কার্যকর।

AQL-এ Joins অন্যান্য ডাটাবেসের মতো ফর্মাল সিস্টেমে কাজ না করলেও, কোয়েরি স্ট্রাকচারে FOR এবং FILTER এর মাধ্যমে কার্যকরভাবে Joins সম্পাদন করা যায়।


AQL-এ Joins এর প্রকারভেদ

  1. Inner Join: দুই কালেকশনের মধ্যে সম্পর্কিত ডেটা বের করে।
  2. Left Join (বা Outer Join): একটি কালেকশনের সব ডেটা এবং অপরটির মিলিত ডেটা বের করে।

উদাহরণ: AQL-এ Joins

১. দুটি কালেকশন তৈরি করা

  • Customers কালেকশন:
{ "_key": "cust1", "name": "Rahim" }
{ "_key": "cust2", "name": "Karim" }
  • Orders কালেকশন:
{ "_key": "order1", "customer_id": "cust1", "product": "Laptop" }
{ "_key": "order2", "customer_id": "cust2", "product": "Mobile" }
{ "_key": "order3", "customer_id": "cust1", "product": "Tablet" }

২. Inner Join উদাহরণ

FOR c IN Customers
    FOR o IN Orders
        FILTER c._key == o.customer_id
        RETURN {
            customer_name: c.name,
            product: o.product
        }
ফলাফল:
[
  { "customer_name": "Rahim", "product": "Laptop" },
  { "customer_name": "Rahim", "product": "Tablet" },
  { "customer_name": "Karim", "product": "Mobile" }
]

এই কোয়েরি Customers এবং Orders এর মধ্যে customer_id এর ভিত্তিতে সম্পর্ক তৈরি করে।


৩. Left Join উদাহরণ

যদি কোনো গ্রাহকের অর্ডার না থাকে, তাহলে তাকে এখনও ফলাফলে অন্তর্ভুক্ত করা হবে:

FOR c IN Customers
    LET orders = (
        FOR o IN Orders
            FILTER c._key == o.customer_id
            RETURN o.product
    )
    RETURN {
        customer_name: c.name,
        products: orders
    }
ফলাফল:
[
  { "customer_name": "Rahim", "products": ["Laptop", "Tablet"] },
  { "customer_name": "Karim", "products": ["Mobile"] }
]

৪. Multiple Joins উদাহরণ

যদি একাধিক কালেকশনের মধ্যে Joins করতে চান:

FOR c IN Customers
    FOR o IN Orders
        FOR p IN Products
            FILTER c._key == o.customer_id AND o.product == p.product_name
            RETURN {
                customer: c.name,
                product: p.product_name,
                price: p.price
            }

AQL Joins-এর সুবিধা

  1. সহজ এবং কার্যকর কোয়েরি স্ট্রাকচার।
  2. বিভিন্ন কালেকশনের ডেটা ম্যানিপুলেশন।
  3. Flexible Filtering: সম্পর্কিত ডেটার নির্দিষ্ট অংশ বের করার জন্য।

Joins-এর সীমাবদ্ধতা

  • AQL-এ Joins খুব বড় ডেটাসেটের ক্ষেত্রে কম কার্যকর হতে পারে।
  • বড় Join অপারেশন চালানোর সময় পারফরম্যান্স অপ্টিমাইজ করতে Indexing ব্যবহার করা উচিত।

সারাংশ

AQL-এ Joins ডাটাবেসের বিভিন্ন কালেকশনের সম্পর্কিত ডেটা একত্রে বিশ্লেষণ করার জন্য অত্যন্ত কার্যকর। ডেভেলপাররা সহজেই FOR এবং FILTER ব্যবহার করে Inner এবং Left Join সম্পাদন করতে পারেন। তবে বড় ডেটাসেটে পারফরম্যান্স নিশ্চিত করতে সঠিক Indexing অপরিহার্য।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion